package com.learnyou.server.xingzuo.common.constants;


public enum ErrorCode implements ErrorMessage {
    /**
     * -------------------
     * 0XXXX: 输入错误
     * description: 无需做任何处理，只需输入正确消除
     * -------------------
     */
    ACCOUNT_EXIST("0001", "用户名已经存在"),
    ACCOUNT_FAILED("0002", "用户名或密码不对"),
    ACCOUNT_CLOSED("0003", "当前用户已经注销"),
    ACCOUNT_ADD_FAILED("0004", "用户增加失败"),
    ACCOUNT_NEED_LOGIN("0006", "用户信息已经过期，请登录后重试。"),

    /**
     * -------------------
     * 01XXX: 微信端绑定
     * description: 无需做任何处理，只需输入正确消除
     * -------------------
     */
    BINDING_ERROR("0100", "绑定失败"),
    BINDING_NO_ACCOUNT("0101", "您未在任何机构学习或工作"),
    BINDING_MP_FAILED("0102", "公众号绑定失败，已经绑定了其他机构。"),

    /**
     * -------------------
     * 1XXXX: 权限相关错误
     * description: 无需做任何处理，只需输入正确消除
     * -------------------
     */
    ACCOUNT_NO_AUTH("1000", "当前用户无权限"),
    NO_OPERATE_AUTH("1001", "没有当前操作权限"),

    /**
     * -------------------
     * 11XXX: weixin
     * description: 无需做任何处理，只需输入正确消除
     * -------------------
     */
    WECHAT_OPENID_FAILED("1100", "微信获取openId失败"),
    WECHAT_TOKEN_FAILED("1101", "获得微信访问令牌失败"),
    WECHAT_PHONE_FAILED("1102", "微信获取手机号失败"),
    WECHAT_MSG_ATTENDANCE_FAILED("1103", "考勤通知发送失败"),
    WECHAT_THIRD_TICKET_PARSE_FAILED("1110", "第三方平台票据解析失败"),
    WECHAT_THIRD_PRE_AUTH_CODE_FAILED("1111", "获取预授权码失败"),
    WECHAT_THIRD_GET_AUTH_INFO_FAILED("1112", "获取授权失败"),
    WECHAT_THIRD_GET_AUTHORIZER_INFO_FAILED("1113", "获取授权者信息失败"),
    WECHAT_GEN_URL_LINK_FAILED("1114", "生成小程序链接失败"),

    /**
     * -------------------
     * 2XXX: 数据类异常
     * description: 无需做任何处理，只需输入正确消除
     * -------------------
     */
    DATA_NOT_EXIST("2000", "请求数据不存在"),
    COMMENT_SECURITY_INVALID("2010", "评论内容安全检查未通过"),

    /**
     * -------------------
     * 21XX: 文件操作类
     * description: 无需做任何处理，只需输入正确消除
     * -------------------
     */
    FILE_READ_ERROR("2100", "文件读取失败"),
    FILE_WRITE_ERROR("2101", "文件写入失败"),
    FILE_REMOVE_ERROR("2102", "文件删除失败"),
    /**
     * -------------------
     * 30XX: 机构相关
     * description: 无需做任何处理，只需输入正确消息
     * -------------------
     */
    ORG_NAME_EXIST("3000", "机构名称已经存在"),
    ORG_SHORT_NAME_EXIST("3001", "机构简称已经存在"),
    ORG_NOT_EXIST("3002", "机构数据不存在"),
    ORG_ACCOUNT_CREATE_FAILED("3003", "机构账号创建失败"),
    ORG_ACCOUNT_NOT_EXIST("3004", "机构账号不存在"),
    ORG_ACCOUNT_LOGIN_FAILED("3005", "登录账号密码不正确"),
    ORG_OWN_PHONE_EXIST("3006", "机构法人手机号已经存在"),
    ORG_ACCOUNT_ALREADY_EXIST("3004", "机构账号已经存在"),
    ORG_NOTICE_OVER_LIMIT("3007", "机构发布通知次数超限"),
    ORG_OPER_LIMIT("3008", "您的账号当前账号没有操作权限，请联系管理员获取权限！"),


    /**
     * -------------------
     * 31XX: 教师相关
     * description: 无需做任何处理，只需输入正确消息
     * -------------------
     */
    TEACHER_ADD_FAILED("3100", "教师添加失败"),
    TEACHER_PHONE_EXIST("3101", "该手机号码教师已经存在"),
    TEACHER_UPDATE_FAILED("3102", "教师数据更新失败"),
    TEACHER_NOT_EXIST("3103", "教师不存在"),
    TEACHER_SCHEDULE_ADD_FAILED("3104", "教师课次添加失败"),
    TEACHER_SCHEDULE_EXIST("3105", "该教师存在关联的课程，无法删除"),
    TEACHER_REMOVE_FAILED("3106", "教师删除失败"),


    /**
     * -------------------
     * 32XX: 课程课次相关
     * description: 无需做任何处理，只需输入正确消息
     * -------------------
     */
    COURSE_ADD_FAILED("3200", "课程添加失败"),
    COURSE_NAME_EXIST("3201", "课程已经存在"),
    COURSE_DATA_NOT_EXIST("3202", "课程不存在"),
    COURSE_UPDATE_FAILED("3203", "课程添加失败"),
    COURSE_SCHEDULE_EXIST("3204", "课程计划已经存在"),
    COURSE_SCHEDULE_NOT_EXIST("3205", "课程计划不存在"),
    COURSE_SCHEDULE_ADD_FAILED("3206", "课程计划添加失败"),
    COURSE_SCHEDULE_HAS_STUDENT_ERROR("3207", "课程计划已经有学生使用中，不可编辑"),
    COURSE_SCHEDULE_EDIT_FAILED("3208", "课程计划修改失败"),
    COURSE_SCHEDULE_REMOVE_FAILED("3209", "课程计划修改失败"),
    COURSE_REMOVE_FAILED("3210", "课程删除失败"),
    COURSE_REMOVE_HAS_RELATION_SCHEDULE_FAILED("3211", "存在关联课程计划，无法删除"),
    COURSE_SCHEDULE_TIME_EMPTY("3212", "请填写时间安排"),


    /**
     * 33XX邀请码相关
     */
    INVITE_CODE_EXPIRED("3300", "邀请码已过期"),
    USER_ALREADY_BIND("3301", "微信已绑定"),

    /**
     * 34XX 学生相关
     */
    STUDENT_NOT_EXIST("3400","学生不存在"),
    STUDENT_GUARDIAN_EXIST("3401", "存在相关联系人数据，无法删除"),


    /**
     * 35XX 订单相关
     */
    ORDER_CANNOT_CANCEL("3500", "当前订单不允许取消"),

    /**
     * 36XX 请求相关
     */
    TO_MANY_REQUEST("3600", "请求太频繁"),

    /**
     * -------------------
     * 9XXXX: 严重错误
     * description: 需要紧急修复处理才可恢复
     * -------------------
     */
    ERROR_UNKNOWN("9999", "系统错误，请联系管理员紧急修复"),

    PARAM_ERROR("4001", "参数错误")
    ;
    private String code;
    private String message;
    ErrorCode(String code, String message) {
        this.code = code;
        this.message = message;
    }

    @Override
    public String getCode() {
        return this.code;
    }

    @Override
    public String getMessage() {
        return this.message;
    }
}
